package modelo.Orientacion;
import java.awt.Rectangle;
import java.awt.geom.Area;


public class AreaRectangular extends Area {

	private int  largoArea;
        private int anchoArea;
	
	
	//Se crea una instancia de Area con la posici�n central y el largo del area
	//Pre: -
	//Pos1: Se crea una instancia de Area
	//Pos2: Si el largo es par, se lo convierte a impar disminuyendo el largo en una unidad
	//Pos3: Si el largo es menor a 1, el largo se toma como 1
    public AreaRectangular(int ancho, int largo){
    	if (largo < 1 ){
    		largo=1;
    	}
    	if (largo%2 == 0){
    		largoArea = largo-1;
    	}
    	largoArea = largo;
        anchoArea = ancho;
    }
    

    //Pre: Se debe haber creado una instancia de Area
    //Pos: Devuelve verdadero en caso que unArea tenga alguna de sus posiciones dentro de esta Area    
    public boolean estasSobreEstaArea(Posicion posicionCentral, Area unArea){
   	Area area = this.getArea(posicionCentral);
    	return area.intersects(unArea.getBounds2D());
    	
    }
  
    
    //Pre: Se debe haber creado una instancia de Area
    //Pos: Devuelve verdadero en caso que unaPosicion este dentro de esta Area    
    public boolean esEstaUnaDeTusPosiciones(Posicion posicionCentral, Posicion unaPosicion){
        Area area = this.getArea(posicionCentral);
    	return area.contains(unaPosicion.devolverElValorDelEjeX(), unaPosicion.devolverElValorDelEjeY());
    }

    public Area getArea(Posicion centro){
    	Rectangle unRectangulo = new Rectangle(centro.devolverElValorDelEjeX()-largoArea/2,centro.devolverElValorDelEjeY()-largoArea/2, anchoArea,largoArea);
    	Area area = new Area(unRectangulo);
        return area;
    }
}
